The present invention relates to microprocessor auxiliary circuits, and to systems which include an auxiliary circuit in combination with a complex integrated circuit.
Microprocessor Auxiliary Circuits
The Dec. 9, 1988 parent applications described (among other innovations) a type of system which included not only a microprocessor (or microcontroller), but also an auxiliary chip which provides some important monitoring and overhead functions for the microprocessor. For example, in the primary embodiments described there, the auxiliary chip monitors the system power supply voltage and performs related functions for the microprocessor, and also provides a watchdog function to monitor the microprocessor's activity. The primary auxiliary chip embodiment, as described in these applications, is generally similar to the integrated circuit now sold as part number DS1236. (This integrated circuit and its data sheet are available from Dallas Semiconductor Corporation, 4350 Beltwood Parkway, Dallas TX 75244, and are both hereby incorporated by reference.)
A variety of microprocessor auxiliary chips, with various functionalities, have now been proposed. For example, Dallas Semiconductor also sells a DS1227 chip, which has significantly different functions from the DS1236 chip, and is especially well adapted to systems under stringent power constraints. (This integrated circuit and its data sheet are available from Dallas Semiconductor Corporation, 4350 Beltwood Parkway, Dallas TX 75244, and are both hereby incorporated by reference.)
For another example, Maxim sells auxiliary chips (including at least a "MAX690" chip and a "MAX691" chip) which are also intended for microprocessor supervision. Allen, "Analog supervisor chip keeps microprocessor out of trouble."35 Electronic Design, pages 104-108 Apr. 30, 1987) supposedly contains disclosure as follows (according to the abstract in the INSPEC on-line database): "The goal at Maxim Integrated Products was to sharply reduce the complexity, component count, and space of standard microporcessor supervisory circuits, while improving the accuracy and reliablility of reset and battery-switchover circuits together with a watchdog timer and write protection. The result was the MAX691 and MAX690 micrprocessor supervisory ICs which pack many common housekeeping functions into 16-pin and 8-pin packages." Also, Schwerte, "An analogue supervisory circuit for microcomputers" [in German], 18 Electron. Ind. (West Germany) no. 6, pages 66, 68-70 (1987) supposedly contains disclosure as follows (according to the abstract in the INSPEC on-line database): "The author describes the Maxim MAX691 supervisory chip. It comprises all the necessary functions for the secure operation of a microprocessor system. The design aims for this unit was the improved resolution and reliability of the back-up circuit, and the circuitry for switching between the normal power supply and the battery supply, as well as the realization of such necessary functions as the watchdog timer and the write protection for EEPROMs and CMOS-RAMs." Both of these articles are hereby incorporated by reference.
For another example, Dallas Semiconductor has recently announced a DS1239 chip, which is generally similar to the primary described auxiliary chip embodiment in the Nov. 30, 1989 PCT application. This chip provides additional power management functions, in addition to those of the DS1236 embodiment. (This integrated circuit and its data sheet are available from Dallas Semiconductor Corporation, 4350 Beltwood Parkway, Dallas Tex. 75244, and are both hereby incorporated by reference.)
Active-High and Active-Low Resets
A microprocessor auxiliary chip should be able to reset the attached microprocessor. The "reset" input to a microprocessor forces the microprocessor into a known state-either immediately, or after a certain number of clock cycles have passed. Thus, a reset input can be used ot rescue the microprocessor from any kind of stuck state. Substantially all microprocessors have some kind of reset input. However, different microprocessors require different kinds of reset signals. For example, the Intel 8051 microprocessor requires an active-high reset, and the Motorola 6800 microprocessor requires an active-low reset. That is an active-high reset microprocessor has an RST (not RST pin, and the microprocessor will go into reset if the RST pin is driven to a high logic level. An active-low microprocessor has an RST pin, and will go into reset if the RST pin is driven low.
An advantageous way to deal with this is to provide two reset signal outputs from an auxiliary chip, one active-high (RST) and one active-low (RST ). Thus, the user can wire up the auxiliary chip to match the microprocessor specified for use in his system. However, note that this flexibility in the auxiliary chip requires that two pins, rather than one, be available for the reset signals. (Thus, this functionality has heretofore imposed an added constraint on packaging, which is undesirable.)
Use of Pushbutton to Provide Inputs to Integrated Circuit Logic
In many system configurations, it is helpful if the user can provide a direct input into logic circuits, for example by pushing a button. This capability can provide a very simple and reliable input, which can be used to reliably force a complex logic system into reset. (If a complex programmable logic system hangs up, it may not be possible to interrupt it with the normal inputs, such as keyboard input.)
A pushbutton input must be "debounced." As a mechanical contact actually closes, the voltage across the contacts may go from high to low repeatedly, before stabilizing. This may be due, for example, to physical bouncing of the contacts, or to native oxide on the contacts. An over-sensitive circuit could sense this as several separate actuations. Simple circuits can be used for debouncing, but the need for debouncing circuits limits the other functions of a pushbutton input. Thus, again, this desirable feature places a burden on pinout.
Innovative Microprocessor Auxiliary
Among the innovations disclosed in the present application is a new microprocessor auxiliary chip, in which two pins are used for the three functions of active-high-reset out, active-low-reset out, and pushbutton input. (This chip embodiment will be referred to herein as the "DS1238"; however, it should be noted that the actual DS1238 chip, when it comes to market, may not necessarily correspond to this embodiment in all details.)
In this embodiment, the pushbutton input is combined with an active-low reset output pin. This pin functions to provide both an output RST function for such elements as the watchdog timer or power fail, while also providing a monitor of the state of an external push button tied between the RST pin and ground (see FIG. 3). This combination allows the use of an external push button for a RST function without the need to dedicate a pin on the chip to the push button.
The push button monitor is achieved through the monitoring of the drivers which drive the final output devices on the RST pin. If these drivers indicate that the internal circuits on the DS1238 are not attempting to generate a low on the RST pin, the monitor circuit assumes that the external push button has pulled the RST pin low. This circuit in turn will force the internal DS1238 circuits to complement the low on the RST pin (using pin drivers) for an average of approximately 100 ms. In this manner a less than 100 ms pulse on the push button will translate into a 100 ms pulse on the RST pin. In short the DS1238 will guaranty that the RST pin is always pulsed low for an average of 100 ms, whether the reset is initiated by a watchdog timeout, by detection of power failure, or by actuation of the external push button. The RST pin drivers are composed of a strong n-channel pull down and a very weak p-channel pull up, to allow for a wired-OR RST function. Since the internal functions which produce a RST are clock sampled, the monitor circuit is sampled with an inverse clock to provide a means of testing the drivers of the output RST pin drivers without encountering race condition problems. The enclosed block diagram should give you the basics. This function would also work in general for the RST pin (active high wired OR), as well the NMI output pin.